package com.gupao.prototype;

import com.gupao.prototype.simple.PrototypeA;

import java.util.ArrayList;

/**
 * 浅克隆，克隆的成员变量引用地址是相同的，如果改变原对象的成员变量，则克隆对象的成员变量也会更改
 */
public class TestSimplePrototype {
    public static void main(String[] args) {
        PrototypeA p1 = new PrototypeA();
        p1.setName("王斌");
        p1.setAge(25);
        p1.setHobbies(new ArrayList<String>());

        PrototypeA p2 = new PrototypeA();
        p2 = (PrototypeA) p1.clone();
        System.out.println("原对象的成员变量引用值为：" + p1.getHobbies());
        System.out.println("克隆对象的成员变量引用值为：" + p2.getHobbies());
        System.out.println("原对象和克隆对象的成员变量引用地址比较：" + (p1.getHobbies() == p2.getHobbies()));

        /**
         * 运行结果：
         *      原对象的成员变量引用地址为：[]
         *      克隆对象的成员变量引用地址为：[]
         *      原对象和克隆对象的成员变量引用地址比较：true
         */
    }
}
